package net.sxnic.workflow.context;

import java.io.File;
import java.util.Map;
import java.util.Set;

import net.sxnic.workflow.handler.WfHandlerException;
import net.sxnic.workflow.task.Task;
import net.sxnic.workflow.task.TaskComment;
import net.sxnic.workflow.task.TaskManager;

public interface WfContext<T> {

	void validateSelf() throws WfHandlerException;

	T getEntity();

	void setEntity(T entity);

	Map<String, Object> getPros();

	void setPros(Map<String, Object> pros);

	String getEntityId();

	void setEntityId(String entityId);

	TaskManager getTaskManager();

	void setTaskManager(TaskManager taskManager);

	Task getTask();

	void setTask(Task task);

	String getErrorMsg();

	void setErrorMsg(String errorMsg);

	String getTaskName();

	void setTaskName(String taskName);

	String getProcessName();

	void setProcessName(String processName);

	String getNextAssignee();

	void setNextAssignee(String nextAssignee);

	String getNextAssigneesHtml();

	void setNextAssigneesHtml(String nextAssigneesHtml);

	String getNextAssignees();

	void setNextAssignees(String nextAssignees);

	String getSelectedNextAssignees();

	void setSelectedNextAssignees(String selectedNextAssignees);

	String getButtonType();

	void setButtonType(String buttonType);

	File getUpload();

	void setUpload(File upload);

	String getUploadFileName();

	void setUploadFileName(String uploadFileName);

	String getSignPassword();

	void setSignPassword(String signPassword);

	String getTaskComment();

	void setTaskComment(String taskComment);

	String getTaskId();

	void setTaskId(String taskId);

	Map<String, Set<TaskComment>> getCommentMap();

	void setCommentMap(Map<String, Set<TaskComment>> commentMap);

}
